from search_engine_base import AbstractSearchEngine


# 基于简单字符串匹配的搜索引擎实现
class SimpleAbstractSearchEngine(AbstractSearchEngine):
    # 构造函数
    def __init__(self):
        # 调用父类的构造函数
        super(SimpleAbstractSearchEngine, self).__init__()

        # 初始化内部索引表
        # 索引表为一个dict, key为语料库ID value为该语料库的全量文本
        self.__index_table = {}

    # 将id和文本保存到索引表中
    def process_corpus(self, id, text):
        self.__index_table[id] = text

    # 搜索实现
    # 遍历索引表,查找指定query
    def search(self, query):
        # 遍历索引表,依次判断每段文本内容是否包含query
        result = []
        for id, text in self.__index_table.items():
            if query in text:
                result.append(id)

        return result
